Computer storage needs have grown for computer applications over the years. As time has progressed, computer manufacturers have become more efficient in production of computers. Attention is placed not only on the hardware used within a computer or connected to a computer, but also the software upon which a computer connected device operates.
Software is designed to control the various hardware components to provide a user with stability of operation and flexibility of purpose. While the software controls the various hardware components, often times there is a need to provide for a reset of either the hardware or the software to ensure that proper computer activities are achieved.
Resets of computer functions, either software or hardware based, allow the computer to enter known states so that processing may proceed as intended. Resets can be either automatic functions or may be elected by a user. Computer generated automatic resets, while having a potential positive effect on the overall computing experience, are often symptoms of greater problems in the systems themselves. In addition to the problems associated with the systems themselves, such resets can hamper operations and slow computing down to unacceptable levels. Computer architects, therefore, desire to minimize such resets to occur as minimally as possible. Different techniques are used to minimize these resets, including spinlocks, semaphores and barriers.
Software resets occur at times needed for stability and operability purposes. During these software resets, the computer that is monitoring the activities of the connected devices may lose contact with the connected devices. Once the connected devices are not attached to the computer, the devices must be resynchronized to allow the connected device and the computer to achieve required functionality. Computer operations are significantly slowed when resynchronization is required, impacting the overall efficiency of the computer.
There is a further need to allow a computer to identify an initiation of a software reset of a device connected to a computer.
There is need to provide a more time efficient manner upon which a computer and a device connected to a computer may be synchronized.
There is a further need to provide for a method and apparatus to achieve a synchronization of a computer device in a lossless manner.